package cn.hloger.spider.demo.webSocketDemo.server.impl;

import cn.hloger.spider.demo.webSocketDemo.server.BaseWebsocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

/**
 * socket的客户端
 * onOpen: 当客户端建立 WebSocket 连接时触发。
 * onMessage: 当接收到客户端发送的消息时触发。
 * onClose: 当客户端关闭 WebSocket 连接时触发。
 * onError: 当出现错误时触发。
 *
 * @author huanglong
 * @version 1.0
 * @date 2024/2/27
 */
@ServerEndpoint("/server/{taskId}")
@Component
@Slf4j
public class WebsocketServerImpl extends BaseWebsocketServer {
    /**
     * 给指定客户端发消息
     *
     * @param message
     */
    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        log.info("收到消息: " + message);
        //单独回复
        for (int i = 0; i < 5; i++) {
            session.getBasicRemote().sendText("服务器回复: " + message + "_" + i);
        }
        //全局回复
        String all = "全体起立,全员消息";
        sendAllMessage(all);
    }

}
